{
    var a = [];
    for (var i = 0; i < 10; i++) {
        a[i] = function () {
            console.log(i);
        };
    }
    a[6]();
}

{
    var a = [];
    for (let i = 0; i < 10; i++) {
        a[i] = function () {
            console.log(i);
        };
    }
    a[6]();
}

{
    // let  块级作用域
    let a = 9; {
        let a = 0;
        console.log(a) //0
    }
    console.log(a) //9
}



{
    var a = 9; {
        var a = 0;
        console.log(a) //0
    }

    console.log(a) //0
}


{
    let a = 0;
    if (true) {
        let a = 9;
        console.log(9)
    }
    console.log(a)
} {
    // let 的「创建」过程被提升了，但是初始化没有提升。
    // var 的「创建」和「初始化」都被提升了。
    // function 的「创建」「初始化」和「赋值」都被提升了。
    // const，其实 const 和 let 只有一个区别，那就是 const 只有「创建」和「初始化」，没有「赋值」过程。

    console.log(x) // Uncaught ReferenceError: x is not defined
    let x = 1

    console.log(x) // undefined
    var x = 1
}